Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[air] Suppress "NumPy array is not writable" error in torch conversion #29808

Merged
merged 2 commits into from
Oct 28, 2022

Conversation

krfricke
Copy link
Contributor

Signed-off-by: Kai Fricke [email protected]

Why are these changes needed?

When we convert NumPy arrays to torch tesnors in Ray Data, we run into a verbose Numpy error:

The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior.

Since we don't write to numpy tensors we suppress this warning in the conversion. The alternative of copying the array would duplicate our memory usage.

Related issue number

Closes #28003

Checks

  • I've signed off every commit(by using the -s flag, i.e., git commit -s) in this PR.
  • I've run scripts/format.sh to lint the changes in this PR.
  • I've included any doc changes needed for https://docs.ray.io/en/master/.
  • I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failures at https://flakey-tests.ray.io/
  • Testing Strategy
    • Unit tests
    • Release tests
    • This PR is not tested :(

Copy link
Member

@bveeramani bveeramani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@krfricke krfricke merged commit e4040ee into ray-project:master Oct 28, 2022
@krfricke krfricke deleted the air/numpy-suppress-warning branch October 28, 2022 23:39
@clarkzinzow
Copy link
Contributor

It seems like Torch does not yet support non-writable tensors, and the user's model/downstream Torch code might very well mutate the tensor in-place, so I think that we'll need to expose a hook for allowing writable tensors (i.e. allowing batch mutation in .iter_torch_batches()). pytorch/pytorch#37581

WeichenXu123 pushed a commit to WeichenXu123/ray that referenced this pull request Dec 19, 2022
ray-project#29808)

When we convert NumPy arrays to torch tesnors in Ray Data, we run into a verbose Numpy error:

    The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior.

Since we don't write to numpy tensors we suppress this warning in the conversion. The alternative of copying the array would duplicate our memory usage.

Signed-off-by: Kai Fricke <[email protected]>
Signed-off-by: Weichen Xu <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[AIR] Torch UserWarning during training
3 participants